//
//  WCS_WS_VideoMonitor.h
//  VCS_WS_Client
//
//  Created by hu_danyuan on 19-08-22.
//   (c) Copyright 2019, hu_danyuan All Rights Reserved
//
//	描    述:  WCS视频监控
//

#import <Foundation/Foundation.h>
#import "VCS_WS_VideoMonitor.h"

// 一个码流一个对象
@interface WCS_WS_VideoMonitor : VCS_WS_VideoMonitor

/**
 * 实时预览通道视频
 * @param previewInfo   预览信息
 * @param completion    请求结果回调
 * @return
 */
- (void)WCS_realPlay:(WCS_WS_PreviewInfo * _Nonnull)previewInfo
          completion:(void (^ _Nullable)(VCS_WS_RealPlayResult * _Nullable result, NSError * _Nullable error))completion;

/**
 * 关闭实时预览
 * @param completion    请求结果回调
 * @return
 */
- (void)WCS_stopRealPlay:(void (^ _Nullable)(NSError * _Nullable error))completion;

/**
 * @brief 开始语音对讲
 * @param voiceComParam 对讲参数
 * @param completion    请求结果回调
 * @return
 */
- (void)WCS_startVoiceCom:(WCS_WS_VoiceComParam * _Nonnull)voiceComParam
               completion:(void (^ _Nullable)(VCS_WS_VoiceComResult * _Nullable result, NSError * _Nullable error))completion;

/**
 * 转发语音数据
 * @param audioFrame    音频帧信息
 * @param data          对讲码流数据
 * @param completion    请求结果回调
 * @return
 */
- (void)WCS_voiceComSendData:(VCS_WS_AudioFrameInfo * _Nonnull)audioFrame
                        data:(NSData * _Nonnull)data
                       error:(NSError * _Nullable * _Nullable)error;

/**
 * 关闭语音对讲
 * @param completion    请求结果回调
 * @return
 */
- (void)WCS_stopVoiceCom:(void (^ _Nullable)(NSError * _Nullable error))completion;

/**
 * 回放录像视频
 * @param playbackParam 回放参数
 * @param completion    请求结果回调
 * @return
 */
- (void)WCS_playbackByTime:(WCS_WS_RecviewInfo * _Nonnull)playbackParam
                completion:(void (^ _Nullable)(VCS_WS_PlaybackResult * _Nullable result, NSError * _Nullable error))completion;

/**
 * 关闭录像回放
 * @param completion    请求结果回调
 * @return
 */
- (void)WCS_stopPlayback:(void (^ _Nullable)(NSError * _Nullable error))completion;

/**
 * 下载录像视频
 * @param downloadParam 回放参数
 * @param completion    请求结果回调
 * @return
 */
- (void)WCS_downloadByTime:(WCS_WS_RecviewInfo * _Nonnull)downloadParam
                completion:(void (^ _Nullable)(VCS_WS_DownloadResult * _Nullable result, NSError * _Nullable error))completion;

/**
 * 关闭录像下载
 * @param completion    请求结果回调
 * @return
 */
- (void)WCS_stopDownload:(void (^ _Nullable)(NSError * _Nullable error))completion;


@end

